Skip to content

Update rubyboy to 1.7.1 and drop its workarounds - #551

Merged
k0kubun merged 1 commit into
ruby:mainfrom
sacckey:rubyboy-1.7.1
Oct 13, 2026
Merged

k0kubun merged 1 commit into
ruby:mainfrom
sacckey:rubyboy-1.7.1

Conversation

@sacckey

@sacckey sacckey commented Oct 11, 2026

Copy link
Copy Markdown
Contributor

rubyboy 1.7.0 fixed the problems this benchmark worked around, so this updates it to the latest release, 1.7.1, from RubyGems and removes the workarounds:

  • ROM path: Rubyboy::Rom::DEFAULT_PATH replaces the lookup through $".
  • Windows: rubyboy reads the ROM with File.binread, so the File.open patch from Fix benchmarks that fail on Windows #545 is no longer needed. @hsbt, this is the rubyboy fix you mentioned sending upstream; it is already in 1.7.0.
  • Ractors: the APU duty tables are shareable, so the two make_shareable calls are gone.

The Gemfile now uses the released gem instead of the git repository. In the lockfile only rubyboy changes; ffi and Bundler stay at 1.17.2 and 4.0.12. rubyboy 1.7 requires Ruby 4.0 or later.

The emulator changed between 1.5.1 and 1.7.1 (fixes in MBC1 and the APU), so the timings shift. On an Apple M4 with Ruby 4.0.7 (WARMUP_ITRS=5 MIN_BENCH_ITRS=10 MIN_BENCH_TIME=0):

1.5.1 1.7.1
interpreter 2369 ms 2557 ms
YJIT 811 ms 856 ms

Tested with the default, YJIT and Ractor harnesses. I could not test on Windows.

🤖 Generated with Claude Code

rubyboy 1.7.0 provides Rubyboy::Rom::DEFAULT_PATH, reads the ROM in
binary mode and makes its APU duty tables shareable, so the benchmark no
longer needs to find the ROM through $", patch File.open on Windows or
call make_shareable. Use the released gem instead of the git repository.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hsbt

hsbt commented Oct 11, 2026

Copy link
Copy Markdown
Member

Windows: rubyboy reads the ROM with File.binread, so the File.open patch from #545 is no longer needed.

👍

@k0kubun k0kubun left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks 🙏

@k0kubun
k0kubun merged commit b2f74df into ruby:main Oct 13, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants